package main

import (
	"net"
	"github.com/name5566/leaf/log"
	"wind/wind-config"
	"strconv"
)

func main() {
	wind_config.ConfigServer("wind-config/server.json")

	// 如果第二参数为nil,它会使用系统指定多播接口，但是不推荐这样使用
	addr, err := net.ResolveUDPAddr(
		"udp",
		wind_config.ServerConfig.ServerHost + ":" + strconv.Itoa(wind_config.ServerConfig.ServerPort),
	)
	if err != nil {
		log.Fatal("%s", err)
	}
	listener, err := net.ListenMulticastUDP("udp", nil, addr)
	if err != nil {
		log.Fatal("%s", err)
		return
	}
	log.Debug("Local: <%s> \n", listener.LocalAddr().String())
	data := make([]byte, 1024)
	for {
		n, remoteAddr, err := listener.ReadFromUDP(data)
		if err != nil {
			log.Error("error during read: %s", err)
		}
		log.Debug("<%s> %s\n", remoteAddr, data[:n])
	}
}